home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / report.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,033 lines

  1. %% #define REPORT 1        % Thu Jun 14 13:27:16 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For internal reports
  7.  
  8.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  9.     % Copyright (C) 1985, all rights reserved.
  10.     % Copying of this file is authorized only if either
  11.     % (1) you make absolutely no changes to your copy, including name, or
  12.     % (2) if you do make changes, you name it something other than
  13.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  14.     % This restriction helps ensure that all standard styles are identical.
  15.     % The file btxbst.doc has the documentation for this style.
  16.  
  17. ENTRY
  18.   { address
  19.     author
  20.     booktitle
  21.     chapter
  22.     edition
  23.     editor
  24.     howpublished
  25.     institution
  26.     journal
  27.     key
  28.     month
  29.     note
  30.     number
  31.     organization
  32.     pages
  33.     publisher
  34.     school
  35.     series
  36.     title
  37.     type
  38.     volume
  39.     year
  40.   }
  41.   {}
  42.   { label }
  43.  
  44. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  45.  
  46. FUNCTION {init.state.consts}
  47. { #0 'before.all :=
  48.   #1 'mid.sentence :=
  49.   #2 'after.sentence :=
  50.   #3 'after.block :=
  51. }
  52.  
  53. STRINGS { s t }
  54.  
  55. FUNCTION {output.nonnull}
  56. { 's :=
  57.   output.state mid.sentence =
  58.     { ", " * write$ }
  59.     { output.state after.block =
  60.     { "," * write$
  61.       newline$
  62.       "\newblock " write$
  63.     }
  64.     { output.state before.all =
  65.         'write$
  66.         { add.period$ " " * write$ }
  67.       if$
  68.     }
  69.       if$
  70.       mid.sentence 'output.state :=
  71.     }
  72.   if$
  73.   s
  74. }
  75.  
  76. FUNCTION {output}
  77. { duplicate$ empty$
  78.     'pop$
  79.     'output.nonnull
  80.   if$
  81. }
  82.  
  83. FUNCTION {output.check}
  84. { 't :=
  85.   duplicate$ empty$
  86.     { pop$ "empty " t * " in " * cite$ * warning$ }
  87.     'output.nonnull
  88.   if$
  89. }
  90.  
  91. FUNCTION {output.bibitem}
  92. { newline$
  93.   "\bibitem{" write$
  94.   cite$ write$
  95.   "}" write$
  96.   newline$
  97.   ""
  98.   before.all 'output.state :=
  99. }
  100.  
  101. FUNCTION {fin.entry}
  102. { add.period$
  103.   write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {new.block}
  108. { output.state before.all =
  109.     'skip$
  110.     { after.block 'output.state := }
  111.   if$
  112. }
  113.  
  114. FUNCTION {new.sentence}
  115. { skip$
  116. }
  117.  
  118. FUNCTION {not}
  119. {   { #0 }
  120.     { #1 }
  121.   if$
  122. }
  123.  
  124. FUNCTION {and}
  125. {   'skip$
  126.     { pop$ #0 }
  127.   if$
  128. }
  129.  
  130. FUNCTION {or}
  131. {   { pop$ #1 }
  132.     'skip$
  133.   if$
  134. }
  135.  
  136. FUNCTION {new.block.checka}
  137. { empty$
  138.     'skip$
  139.     'new.block
  140.   if$
  141. }
  142.  
  143. FUNCTION {new.block.checkb}
  144. { empty$
  145.   swap$ empty$
  146.   and
  147.     'skip$
  148.     'new.block
  149.   if$
  150. }
  151.  
  152. FUNCTION {new.sentence.checka}
  153. { empty$
  154.     'skip$
  155.     'new.sentence
  156.   if$
  157. }
  158.  
  159. FUNCTION {new.sentence.checkb}
  160. { empty$
  161.   swap$ empty$
  162.   and
  163.     'skip$
  164.     'new.sentence
  165.   if$
  166. }
  167.  
  168. FUNCTION {field.or.null}
  169. { duplicate$ empty$
  170.     { pop$ "" }
  171.     'skip$
  172.   if$
  173. }
  174.  
  175. FUNCTION {emphasize}
  176. { duplicate$ empty$
  177.     { pop$ "" }
  178.     { "{\em " swap$ * "}" * }
  179.   if$
  180. }
  181.  
  182. FUNCTION {embolden}
  183. { duplicate$ empty$
  184.     { pop$ "" }
  185.     { "{\bf " swap$ * "}" * }
  186.   if$
  187. }
  188.  
  189. FUNCTION {paren}
  190. { duplicate$ empty$
  191.     { pop$ "" }
  192.     { "(" swap$ * ")" * }
  193.   if$
  194. }
  195.  
  196. INTEGERS { nameptr namesleft numnames }
  197.  
  198. FUNCTION {format.names}
  199. { 's :=
  200.   #1 'nameptr :=
  201.   s num.names$ 'numnames :=
  202.   numnames 'namesleft :=
  203.     { namesleft #0 > }
  204.     { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  205.       nameptr #1 >
  206.     { namesleft #1 >
  207.         { ", " * t * }
  208.         { numnames #2 >
  209.         { "," * }
  210.         'skip$
  211.           if$
  212.           t "others" =
  213.         { " et~al." * }
  214.         { " and " * t * }
  215.           if$
  216.         }
  217.       if$
  218.     }
  219.     't
  220.       if$
  221.       nameptr #1 + 'nameptr :=
  222.       namesleft #1 - 'namesleft :=
  223.     }
  224.   while$
  225. }
  226.  
  227. FUNCTION {format.authors}
  228. { author empty$
  229.     { "" }
  230.     { author format.names }
  231.   if$
  232. }
  233.  
  234. FUNCTION {format.editors}
  235. { editor empty$
  236.     { "" }
  237.     { editor format.names
  238.       editor num.names$ #1 >
  239.     { ", editors" * }
  240.     { ", editor" * }
  241.       if$
  242.     }
  243.   if$
  244. }
  245.  
  246. FUNCTION {format.edited}
  247. { editor empty$
  248.     { "" }
  249.     { "edited by " editor format.names * }
  250.   if$
  251. }
  252.  
  253. FUNCTION {format.title}
  254. { title empty$
  255.     { "" }
  256.     'title
  257.   if$
  258. }
  259.  
  260. FUNCTION {n.dashify}
  261. { 't :=
  262.   ""
  263.     { t empty$ not }
  264.     { t #1 #1 substring$ "-" =
  265.     { t #1 #2 substring$ "--" = not
  266.         { "--" *
  267.           t #2 global.max$ substring$ 't :=
  268.         }
  269.         {   { t #1 #1 substring$ "-" = }
  270.         { "-" *
  271.           t #2 global.max$ substring$ 't :=
  272.         }
  273.           while$
  274.         }
  275.       if$
  276.     }
  277.     { t #1 #1 substring$ *
  278.       t #2 global.max$ substring$ 't :=
  279.     }
  280.       if$
  281.     }
  282.   while$
  283. }
  284.  
  285. FUNCTION {format.date}
  286. { year empty$
  287.     { month empty$
  288.     { "" }
  289.     { "there's a month but no year in " cite$ * warning$
  290.       month
  291.     }
  292.       if$
  293.     }
  294.     { month empty$
  295.     'year
  296.     { month " " * year * }
  297.       if$
  298.     }
  299.   if$
  300. }
  301.  
  302. FUNCTION {format.btitle}
  303. { title emphasize
  304. }
  305.  
  306. FUNCTION {tie.or.space.connect}
  307. { duplicate$ text.length$ #3 <
  308.     { "~" }
  309.     { " " }
  310.   if$
  311.   swap$ * *
  312. }
  313.  
  314. FUNCTION {either.or.check}
  315. { empty$
  316.     'pop$
  317.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  318.   if$
  319. }
  320.  
  321. FUNCTION {format.bvolume}
  322. { volume empty$
  323.     { "" }
  324.     { "volume" volume tie.or.space.connect
  325.       series empty$
  326.     'skip$
  327.     { " of " * series emphasize * }
  328.       if$
  329.       "volume and number" number either.or.check
  330.     }
  331.   if$
  332. }
  333.  
  334. FUNCTION {format.number.series}
  335. { volume empty$
  336.     { number empty$
  337.     { series field.or.null }
  338.     { output.state mid.sentence =
  339.         { "number" }
  340.         { "Number" }
  341.       if$
  342.       number tie.or.space.connect
  343.       series empty$
  344.         { "there's a number but no series in " cite$ * warning$ }
  345.         { " in " * series * }
  346.       if$
  347.     }
  348.       if$
  349.     }
  350.     { "" }
  351.   if$
  352. }
  353.  
  354. FUNCTION {format.edition}
  355. { edition empty$
  356.     { "" }
  357.     { output.state mid.sentence =
  358.     { edition "l" change.case$ " edition" * }
  359.     { edition "t" change.case$ " edition" * }
  360.       if$
  361.     }
  362.   if$
  363. }
  364.  
  365. INTEGERS { multiresult }
  366.  
  367. FUNCTION {multi.page.check}
  368. { 't :=
  369.   #0 'multiresult :=
  370.     { multiresult not
  371.       t empty$ not
  372.       and
  373.     }
  374.     { t #1 #1 substring$
  375.       duplicate$ "-" =
  376.       swap$ duplicate$ "," =
  377.       swap$ "+" =
  378.       or or
  379.     { #1 'multiresult := }
  380.     { t #2 global.max$ substring$ 't := }
  381.       if$
  382.     }
  383.   while$
  384.   multiresult
  385. }
  386.  
  387. FUNCTION {format.pages}
  388. { pages empty$
  389.     { "" }
  390.     { pages multi.page.check
  391.     { "pages" pages n.dashify tie.or.space.connect }
  392.     { "page" pages tie.or.space.connect }
  393.       if$
  394.     }
  395.   if$
  396. }
  397.  
  398. FUNCTION {format.vol.num.pages}
  399. { volume field.or.null embolden
  400.   " " swap$ * *
  401.   number empty$
  402.     'skip$
  403.     { "(" number * ")" * *
  404.       volume empty$
  405.     { "there's a number but no volume in " cite$ * warning$ }
  406.     'skip$
  407.       if$
  408.     }
  409.   if$
  410.   pages empty$
  411.     'skip$
  412.     { duplicate$ empty$
  413.     { pop$ format.pages }
  414.     { ", " * pages n.dashify * }
  415.       if$
  416.     }
  417.   if$
  418. }
  419.  
  420. FUNCTION {format.chapter.pages}
  421. { chapter empty$
  422.     'format.pages
  423.     { type empty$
  424.     { "chapter" }
  425.     { type "l" change.case$ }
  426.       if$
  427.       chapter tie.or.space.connect
  428.       pages empty$
  429.     'skip$
  430.     { ", " * format.pages * }
  431.       if$
  432.     }
  433.   if$
  434. }
  435.  
  436. FUNCTION {format.in.ed.booktitle}
  437. { booktitle empty$
  438.     { "" }
  439.     { editor empty$
  440.     { "in " booktitle emphasize * }
  441.     { "in " booktitle emphasize * ", " * format.edited * }
  442.       if$
  443.     }
  444.   if$
  445. }
  446.  
  447. FUNCTION {empty.misc.check}
  448. { author empty$ title empty$ howpublished empty$
  449.   month empty$ year empty$ note empty$
  450.   and and and and and
  451.     { "all relevant fields are empty in " cite$ * warning$ }
  452.     'skip$
  453.   if$
  454. }
  455.  
  456. FUNCTION {format.thesis.type}
  457. { type empty$
  458.     'skip$
  459.     { pop$
  460.       type "t" change.case$
  461.     }
  462.   if$
  463. }
  464.  
  465. FUNCTION {format.tr.number}
  466. { type empty$
  467.     { "Technical Report" }
  468.     'type
  469.   if$
  470.   number empty$
  471.     { "t" change.case$ }
  472.     { number tie.or.space.connect }
  473.   if$
  474. }
  475.  
  476. FUNCTION {format.article.crossref}
  477. { key empty$
  478.     { journal empty$
  479.     { "need key or journal for " cite$ * " to crossref " * crossref *
  480.       warning$
  481.       ""
  482.     }
  483.     { "In " journal * }
  484.       if$
  485.     }
  486.     { "In " key * }
  487.   if$
  488.   " \cite{" * crossref * "}" *
  489. }
  490.  
  491. FUNCTION {format.crossref.editor}
  492. { editor #1 "{vv~}{ll}" format.name$
  493.   editor num.names$ duplicate$
  494.   #2 >
  495.     { pop$ " et~al." * }
  496.     { #2 <
  497.     'skip$
  498.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  499.         { " et~al." * }
  500.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  501.       if$
  502.     }
  503.       if$
  504.     }
  505.   if$
  506. }
  507.  
  508. FUNCTION {format.book.crossref}
  509. { volume empty$
  510.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  511.       "In "
  512.     }
  513.     { "Volume" volume tie.or.space.connect
  514.       " of " *
  515.     }
  516.   if$
  517.   editor empty$
  518.   editor field.or.null author field.or.null =
  519.   or
  520.     { key empty$
  521.     { series empty$
  522.         { "need editor, key, or series for " cite$ * " to crossref " *
  523.           crossref * warning$
  524.           "" *
  525.         }
  526.         { "{\em " * series * "\/}" * }
  527.       if$
  528.     }
  529.     { key * }
  530.       if$
  531.     }
  532.     { format.crossref.editor * }
  533.   if$
  534.   " \cite{" * crossref * "}" *
  535. }
  536.  
  537. FUNCTION {format.incoll.inproc.crossref}
  538. { editor empty$
  539.   editor field.or.null author field.or.null =
  540.   or
  541.     { key empty$
  542.     { booktitle empty$
  543.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  544.           crossref * warning$
  545.           ""
  546.         }
  547.         { "In {\em " booktitle * "\/}" * }
  548.       if$
  549.     }
  550.     { "In " key * }
  551.       if$
  552.     }
  553.     { "In " format.crossref.editor * }
  554.   if$
  555.   " \cite{" * crossref * "}" *
  556. }
  557.  
  558. FUNCTION {article}
  559. { output.bibitem
  560.   format.authors "author" output.check
  561.   new.block
  562.   format.title "title" output.check
  563.   new.block
  564.   crossref missing$
  565.     { journal field.or.null
  566.       format.vol.num.pages 
  567.       format.date empty$
  568.     'skip$
  569.     { duplicate$ empty$
  570.         { pop$ format.date paren }
  571.             { " " * format.date paren * }
  572.       if$
  573.     }
  574.       if$
  575.       output
  576.     }
  577.     { format.article.crossref output.nonnull
  578.       format.pages output
  579.     }
  580.   if$
  581.   new.block
  582.   note output
  583.   fin.entry
  584. }
  585.  
  586. FUNCTION {book}
  587. { output.bibitem
  588.   author empty$
  589.     { format.editors "author and editor" output.check }
  590.     { format.authors output.nonnull
  591.       crossref missing$
  592.     { "author and editor" editor either.or.check }
  593.     'skip$
  594.       if$
  595.     }
  596.   if$
  597.   new.block
  598.   format.btitle "title" output.check
  599.   crossref missing$
  600.     { format.bvolume output
  601.       new.block
  602.       format.number.series output
  603.       new.sentence
  604.       publisher "publisher" output.check
  605.       address output
  606.     }
  607.     { new.block
  608.       format.book.crossref output.nonnull
  609.     }
  610.   if$
  611.   format.edition output
  612.   format.date "year" output.check
  613.   new.block
  614.   note output
  615.   fin.entry
  616. }
  617.  
  618. FUNCTION {booklet}
  619. { output.bibitem
  620.   format.authors output
  621.   new.block
  622.   format.title "title" output.check
  623.   howpublished address new.block.checkb
  624.   howpublished output
  625.   address output
  626.   format.date output
  627.   new.block
  628.   note output
  629.   fin.entry
  630. }
  631.  
  632. FUNCTION {inbook}
  633. { output.bibitem
  634.   author empty$
  635.     { format.editors "author and editor" output.check }
  636.     { format.authors output.nonnull
  637.       crossref missing$
  638.     { "author and editor" editor either.or.check }
  639.     'skip$
  640.       if$
  641.     }
  642.   if$
  643.   new.block
  644.   format.btitle "title" output.check
  645.   crossref missing$
  646.     { format.bvolume output
  647.       format.chapter.pages "chapter and pages" output.check
  648.       new.block
  649.       format.number.series output
  650.       new.sentence
  651.       publisher "publisher" output.check
  652.       address output
  653.     }
  654.     { format.chapter.pages "chapter and pages" output.check
  655.       new.block
  656.       format.book.crossref output.nonnull
  657.     }
  658.   if$
  659.   format.edition output
  660.   format.date "year" output.check
  661.   new.block
  662.   note output
  663.   fin.entry
  664. }
  665.  
  666. FUNCTION {incollection}
  667. { output.bibitem
  668.   format.authors "author" output.check
  669.   new.block
  670.   format.title "title" output.check
  671.   new.block
  672.   crossref missing$
  673.     { format.in.ed.booktitle "booktitle" output.check
  674.       format.bvolume output
  675.       format.number.series output
  676.       format.chapter.pages output
  677.       new.sentence
  678.       publisher "publisher" output.check
  679.       address output
  680.       format.edition output
  681.       format.date "year" output.check
  682.     }
  683.     { format.incoll.inproc.crossref output.nonnull
  684.       format.chapter.pages output
  685.     }
  686.   if$
  687.   new.block
  688.   note output
  689.   fin.entry
  690. }
  691.  
  692. FUNCTION {inproceedings}
  693. { output.bibitem
  694.   format.authors "author" output.check
  695.   new.block
  696.   format.title "title" output.check
  697.   new.block
  698.   crossref missing$
  699.     { format.in.ed.booktitle "booktitle" output.check
  700.       format.bvolume output
  701.       format.number.series output
  702.       format.pages output
  703.       address empty$
  704.     { organization publisher new.sentence.checkb
  705.       organization output
  706.       publisher output
  707.       format.date "year" output.check
  708.     }
  709.     { address output.nonnull
  710.       format.date "year" output.check
  711.       new.sentence
  712.       organization output
  713.       publisher output
  714.     }
  715.       if$
  716.     }
  717.     { format.incoll.inproc.crossref output.nonnull
  718.       format.pages output
  719.     }
  720.   if$
  721.   new.block
  722.   note output
  723.   fin.entry
  724. }
  725.  
  726. FUNCTION {conference} { inproceedings }
  727.  
  728. FUNCTION {manual}
  729. { output.bibitem
  730.   author empty$
  731.     { organization empty$
  732.     'skip$
  733.     { organization output.nonnull
  734.       address output
  735.     }
  736.       if$
  737.     }
  738.     { format.authors output.nonnull }
  739.   if$
  740.   new.block
  741.   format.btitle "title" output.check
  742.   author empty$
  743.     { organization empty$
  744.     { address new.block.checka
  745.       address output
  746.     }
  747.     'skip$
  748.       if$
  749.     }
  750.     { organization address new.block.checkb
  751.       organization output
  752.       address output
  753.     }
  754.   if$
  755.   format.edition output
  756.   format.date output
  757.   new.block
  758.   note output
  759.   fin.entry
  760. }
  761.  
  762. FUNCTION {mastersthesis}
  763. { output.bibitem
  764.   format.authors "author" output.check
  765.   new.block
  766.   format.title "title" output.check
  767.   new.block
  768.   "Master's thesis" format.thesis.type output.nonnull
  769.   school "school" output.check
  770.   address output
  771.   format.date "year" output.check
  772.   new.block
  773.   note output
  774.   fin.entry
  775. }
  776.  
  777. FUNCTION {misc}
  778. { output.bibitem
  779.   format.authors output
  780.   title howpublished new.block.checkb
  781.   format.title output
  782.   howpublished new.block.checka
  783.   howpublished output
  784.   format.date output
  785.   new.block
  786.   note output
  787.   fin.entry
  788.   empty.misc.check
  789. }
  790.  
  791. FUNCTION {phdthesis}
  792. { output.bibitem
  793.   format.authors "author" output.check
  794.   new.block
  795.   format.btitle "title" output.check
  796.   new.block
  797.   "PhD thesis" format.thesis.type output.nonnull
  798.   school "school" output.check
  799.   address output
  800.   format.date "year" output.check
  801.   new.block
  802.   note output
  803.   fin.entry
  804. }
  805.  
  806. FUNCTION {proceedings}
  807. { output.bibitem
  808.   editor empty$
  809.     { organization output }
  810.     { format.editors output.nonnull }
  811.   if$
  812.   new.block
  813.   format.btitle "title" output.check
  814.   format.bvolume output
  815.   format.number.series output
  816.   address empty$
  817.     { editor empty$
  818.     { publisher new.sentence.checka }
  819.     { organization publisher new.sentence.checkb
  820.       organization output
  821.     }
  822.       if$
  823.       publisher output
  824.       format.date "year" output.check
  825.     }
  826.     { address output.nonnull
  827.       format.date "year" output.check
  828.       new.sentence
  829.       editor empty$
  830.     'skip$
  831.     { organization output }
  832.       if$
  833.       publisher output
  834.     }
  835.   if$
  836.   new.block
  837.   note output
  838.   fin.entry
  839. }
  840.  
  841. FUNCTION {techreport}
  842. { output.bibitem
  843.   format.authors "author" output.check
  844.   new.block
  845.   format.title "title" output.check
  846.   new.block
  847.   format.tr.number output.nonnull
  848.   institution "institution" output.check
  849.   address output
  850.   format.date "year" output.check
  851.   new.block
  852.   note output
  853.   fin.entry
  854. }
  855.  
  856. FUNCTION {unpublished}
  857. { output.bibitem
  858.   format.authors "author" output.check
  859.   new.block
  860.   format.title "title" output.check
  861.   new.block
  862.   note "note" output.check
  863.   format.date output
  864.   fin.entry
  865. }
  866.  
  867. FUNCTION {default.type} { misc }
  868.  
  869. MACRO {jan} {"Jan."}
  870.  
  871. MACRO {feb} {"Feb."}
  872.  
  873. MACRO {mar} {"Mar."}
  874.  
  875. MACRO {apr} {"Apr."}
  876.  
  877. MACRO {may} {"May"}
  878.  
  879. MACRO {jun} {"June"}
  880.  
  881. MACRO {jul} {"July"}
  882.  
  883. MACRO {aug} {"Aug."}
  884.  
  885. MACRO {sep} {"Sept."}
  886.  
  887. MACRO {oct} {"Oct."}
  888.  
  889. MACRO {nov} {"Nov."}
  890.  
  891. MACRO {dec} {"Dec."}
  892.  
  893. MACRO {acmcs} {"ACM Comput. Surv."}
  894.  
  895. MACRO {acta} {"Acta Inf."}
  896.  
  897. MACRO {cacm} {"Commun. ACM"}
  898.  
  899. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  900.  
  901. MACRO {ibmsj} {"IBM Syst.~J."}
  902.  
  903. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  904.  
  905. MACRO {ieeetc} {"IEEE Trans. Comput."}
  906.  
  907. MACRO {ieeetcad}
  908.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  909.  
  910. MACRO {ipl} {"Inf. Process. Lett."}
  911.  
  912. MACRO {jacm} {"J.~ACM"}
  913.  
  914. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  915.  
  916. MACRO {scp} {"Sci. Comput. Programming"}
  917.  
  918. MACRO {sicomp} {"SIAM J. Comput."}
  919.  
  920. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  921.  
  922. MACRO {tods} {"ACM Trans. Database Syst."}
  923.  
  924. MACRO {tog} {"ACM Trans. Gr."}
  925.  
  926. MACRO {toms} {"ACM Trans. Math. Softw."}
  927.  
  928. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  929.  
  930. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  931.  
  932. MACRO {tcs} {"Theoretical Comput. Sci."}
  933.  
  934. MACRO {advp} {"Adv. Phys."}
  935. MACRO {ajp} {"Am. J. Phys."}
  936. MACRO {ao} {"Appl. Opt."}
  937. MACRO {apl} {"Appl. Phys. Lett."}
  938. MACRO {apj} {"Astrophys. J."}
  939. MACRO {baps} {"Bull. Am. Phys. Soc."}
  940. MACRO {cpc} {"Computer Phys. Comm."}
  941. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  942. MACRO {fed} {"Fusion Eng. Design"}
  943. MACRO {ft} {"Fusion Tech."}
  944. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  945. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  946. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  947. MACRO {ip} {"Infrared Phys."}
  948. MACRO {jap} {"J. Appl. Phys."}
  949. MACRO {jcp} {"J. Comput. Phys."}
  950. MACRO {jetp} {"Sov. Phys.-JETP"}
  951. MACRO {jfe} {"J. Fusion Energy"}
  952. MACRO {jfm} {"J. Fluid Mech."}
  953. MACRO {jgr} {"J. Geophys. Res."}
  954. MACRO {jmp} {"J. Math. Phys."}
  955. MACRO {jne} {"J. Nucl. Energy"}
  956. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  957. MACRO {jnm} {"J. Nucl. Mater."}
  958. MACRO {josa} {"J. Opt. Soc. Am."}
  959. MACRO {jpp} {"J. Plasma Phys."}
  960. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  961. MACRO {jvst} {"J. Vac. Sci. Technol."}
  962. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  963. MACRO {nf} {"Nucl. Fusion"}
  964. MACRO {nim} {"Nucl. Instrum. Methods"}
  965. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  966. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  967. MACRO {pf} {"Phys. Fluids"}
  968. MACRO {pfa} {"Phys. Fluids A"}
  969. MACRO {pfb} {"Phys. Fluids B"}
  970. MACRO {pl} {"Phys. Lett."}
  971. MACRO {pla} {"Phys. Lett. A"}
  972. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  973. MACRO {pp} {"Plasma Phys."}
  974. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  975. MACRO {prl} {"Phys. Rev. Lett."}
  976. MACRO {pr} {"Phys. Rev."}
  977. MACRO {pra} {"Phys. Rev. A"}
  978. MACRO {ps} {"Physica Scripta"}
  979. MACRO {rmp} {"Rev. Mod. Phys."}
  980. MACRO {rsi} {"Rev. Sci. Instrum."}
  981. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  982. MACRO {spd} {"Sov. Phys.-Dokl."}
  983. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  984. MACRO {spu} {"Sov. Phys.-Usp."}
  985.  
  986. READ
  987.  
  988. STRINGS { longest.label }
  989.  
  990. INTEGERS { number.label longest.label.width }
  991.  
  992. FUNCTION {initialize.longest.label}
  993. { "" 'longest.label :=
  994.   #1 'number.label :=
  995.   #0 'longest.label.width :=
  996. }
  997.  
  998. FUNCTION {longest.label.pass}
  999. { number.label int.to.str$ 'label :=
  1000.   number.label #1 + 'number.label :=
  1001.   label width$ longest.label.width >
  1002.     { label 'longest.label :=
  1003.       label width$ 'longest.label.width :=
  1004.     }
  1005.     'skip$
  1006.   if$
  1007. }
  1008.  
  1009. EXECUTE {initialize.longest.label}
  1010.  
  1011. ITERATE {longest.label.pass}
  1012.  
  1013. FUNCTION {begin.bib}
  1014. { preamble$ empty$
  1015.     'skip$
  1016.     { preamble$ write$ newline$ }
  1017.   if$
  1018.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1019. }
  1020.  
  1021. EXECUTE {begin.bib}
  1022.  
  1023. EXECUTE {init.state.consts}
  1024.  
  1025. ITERATE {call.type$}
  1026.  
  1027. FUNCTION {end.bib}
  1028. { newline$
  1029.   "\end{thebibliography}" write$ newline$
  1030. }
  1031.  
  1032. EXECUTE {end.bib}
  1033.